//===--- cstdint - Stub header for tests ------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef _CSTDINT_
#define _CSTDINT_

typedef __INTMAX_TYPE__  intmax_t;
typedef __UINTMAX_TYPE__ uintmax_t;

namespace std {
  using ::intmax_t;
  using ::uintmax_t;
}

#define DECLARE_INTTYPE(N) \
  typedef __INT ## N ## _TYPE__ int ## N ## _t; \
  typedef int ## N ## _t int_least ## N ## _t; \
  typedef int ## N ## _t int_fast ## N ## _t; \
  typedef __UINT ## N ## _TYPE__ uint ## N ## _t; \
  typedef uint ## N ## _t uint_least ## N ## _t; \
  typedef uint ## N ## _t uint_fast ## N ## _t; \
  namespace std { \
    using ::int ## N ## _t; \
    using ::int_least ## N ## _t; \
    using ::int_fast ## N ## _t; \
    using ::uint ## N ## _t; \
    using ::uint_least ## N ## _t; \
    using ::uint_fast ## N ## _t; \
 } // std

// For reasons unknown, these aren't coming in from <stdint.h>
DECLARE_INTTYPE(8)
DECLARE_INTTYPE(64)

#endif // _CSTDINT__
